home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 014 / diskit.arc / DISKIT.DOC next >
Text File  |  1985-08-27  |  15KB  |  363 lines

  1.      DISKIT lets you look at what's on your disk, and make
  2. changes to what you find there.  You can look at the contents of 
  3. a disk file or a disk sector, in either ASCII (letters and 
  4. numbers a normal person can read) or hexadecimal (numbers 
  5. programmers and computers can read), or both--on the screen or 
  6. printed on a printer.  It also lets you make changes to a disk 
  7. file or a disk sector, and do search and replace with ASCII or 
  8. hexadecimal strings.  It runs under MS or PC-DOS, version 2.0 or 
  9. later.  MS-DOS 2.0 path names can be used when entering the name 
  10. of the disk file to be dumped, changed, or searched.
  11.  
  12.      To run DISKIT, type "DISKIT <RETURN>", without the quotation 
  13. marks.  After a brief appeal to your sense of fairness, the 
  14. program presents you with the Main Menu:
  15.  
  16. ------------------------------------------------------------------
  17.  
  18.                              DISKIT MAIN MENU
  19.  
  20.  
  21.                D - Display a disk directory.
  22.                F - Look at a File.
  23.                T - Look at a particular Track and sector.
  24.                C - Change a file or a track and sector.
  25.                S - Search and replace.
  26.                Q - Quit and exit program.
  27.  
  28.                Enter choice:
  29.  
  30.  
  31. ------------------------------------------------------------------
  32.  
  33.  
  34.      DISKIT makes access to the Main Menu very easy.  No matter 
  35. where you are in the program, if you press the <Esc> key, the 
  36. program will immediately return to the Main Menu.
  37.     
  38. D - Display the disk directories.
  39.  
  40.      Before you look at a file, you may wish to check its name or 
  41. see which disk drive it's on.  Typing a 'D' at the main menu will 
  42. display the directory of any disk drive.
  43.  
  44. F - Look at a file.
  45.  
  46.      To look at a file on the disk, type an 'F'.  You will then be 
  47. asked a series of questions on the screen.  
  48.      
  49.      First you will be asked the name of the file you wish to 
  50. dump.  Any valid file with MS DOS 2.0 path names can be used.  If 
  51. DISKIT is unable to open the file, it will repeat the question.  
  52. If the file you wish to look at is on drive B and you are logged 
  53. onto drive A, you must precede the file name with a 'B:'.
  54.  
  55.      When the program asks you for the "beginning index," enter 
  56. the number of the byte you wish to begin with.  If you simply 
  57. type a <RETURN>, DISKIT will begin at the beginning of the file.  
  58.  
  59.      The program next asks for the number of bytes you wish to 
  60. dump.  Enter the number.  If you type <RETURN>, DISKIT will dump 
  61. to the end of the file.  
  62.  
  63.      Then you are asked if you want the dump to be ASCII, 
  64. hexadecimal, or both.  A <RETURN> gives you both.
  65.  
  66.      If you want DISKIT to present the results on the screen, 
  67. just press <RETURN>.  The program will display a screen at a 
  68. time, waiting  until a key is pressed before going on to the 
  69. next screen.  
  70.  
  71.      If you want a printed copy, choose one of the printer 
  72. options.   You can select continuous feed or a page at a time.  
  73. If your page length is the standard 11 inches, type an 'S' for 
  74. Standard.  For other page lengths, type the number of lines you 
  75. want on a page, and press <RETURN>.
  76.  
  77.      When dumping a file in ASCII, certain unprintable characters 
  78. are represented as follows:
  79.  
  80.      UNPRINTABLE CHARACTER              PRINTS AS
  81.  
  82.      carriage return (hex 0D)                \
  83.      line feed (hex 0A)                      n
  84.      null (hex 00)                           _
  85.      all other unprintable characters        @
  86.  
  87. T - Look at a particular Track and Sector
  88.  
  89.      Type a 'T' if you want to look at your disk by track and 
  90. sector instead of by file.  DISKIT will ask for the track and 
  91. sector numbers instead of file name; thereafter, the program 
  92. works the same way as it does when you are looking at a file.
  93.  
  94. C - Change a file or a track and sector.
  95.  
  96.      Before changing anything with DISKIT, it is a good idea to 
  97. back-up the diskette you wish to alter.  DISKIT is a powerful 
  98. utility that lets you change data on your diskette.  It should be 
  99. used with great care.
  100.  
  101.      Typing a 'C' at the Main Menu will let you change data on your 
  102. disk.  First, you are asked if you wish to change a file or a 
  103. specific track and sector.  After a series of questions similar 
  104. to those for looking at a file, you will see a screen that looks 
  105. something like this:
  106.  
  107.  
  108. ------------------------------------------------------------------
  109.  
  110.  File is diskit.doc
  111.  
  112.  
  113.  
  114.  
  115.  
  116.      304: 65 e
  117.  
  118.  
  119.      288: 626F74682D2D6F6E207468652073637265656E206F72200D0A7072696E74656420
  120.      288: b o t h - - o n   t h e   s c r e e n   o r       p r i n t e d
  121.  
  122.  
  123.  
  124.   RETURN - No change, go on to the next character.
  125.    (backspace) - No change, go back to previous character.
  126.   Esc - Go back to main menu or continue searching for a string.
  127.  
  128.   Otherwise change the current character by entering either a
  129.   one character ASCII symbol or a 2 digit hexadecimal number.
  130.   Then press RETURN.
  131.  
  132.  
  133. ------------------------------------------------------------------
  134.  
  135.      The screen shows the bytes surrounding the byte you want 
  136. to change, in ASCII and in hexadecimal.  To move forward through 
  137. the file, just press <RETURN> until you get to the byte you wish 
  138. to alter.  When you are there, typing a single character will 
  139. replace the selected byte with the character you typed.  If you 
  140. type two characters, the byte will be replaced by the hexadecimal 
  141. value represented by the two characters.
  142.  
  143.      To move through the line of characters, you can also use the 
  144. cursor keys to move to the left or the right, or use the <RETURN> 
  145. key to move to the right and the back-arrow key to move to the 
  146. left.
  147.  
  148.      We recommend that you be careful in making changes on your
  149. disk, because as soon as you make the change on the screen and 
  150. press <RETURN>, the program alters the disk.  Of course, you can 
  151. always change it back, if you know what to change it back to.
  152.  
  153. S - Search and replace.
  154.  
  155.      First you will be asked for the name of the file and the 
  156. place to begin searching.  The screen will then look like this:
  157.  
  158.  
  159. ------------------------------------------------------------------
  160.  
  161.  
  162.      What do you want to look for? DISKIT
  163.  
  164.      Do you want to replace it with anything?  (Y or N): Y
  165.  
  166.      What do you want to replace it with? diskit
  167.  
  168.      DISKIT will create a new file called diskit.$$$, which will contain all
  169.      of the changes.
  170.  
  171.      Press RETURN to continue, Esc to go back to menu.
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.      If you want to enter a hexadecimal string, enter a \ first.
  180.      To enter a string that begins with \, enter two of them (\\).
  181.  
  182.  
  183. ------------------------------------------------------------------
  184.  
  185.      In this example, we are looking for the string "DISKIT" and 
  186. replacing it with the lower case string "diskit".   You can also 
  187. search for a hexadecimal string by preceding the string with a 
  188. "\".  In this case we could have searched for the string 
  189. "\4449534B4954" and replaced it with "\6469736B6974".  This would 
  190. have accomplished the same thing as entering "DISKIT" and
  191. "diskit".  If you actually want to search for a string that 
  192. begins with a "\" such as "\n", enter a double back slash, i.e. 
  193. "\\n".
  194.  
  195.      If you just want to search without replacing, answer "N" to 
  196. the second question.  DISKIT will then search for an occurence of 
  197. the string and when it is found, will display the Change screen 
  198. as if you had asked to make a change to the file at that point.  
  199. From there it works just as if you had chosen the 'C' option at 
  200. the main menu, except that when you are done, and have pressed 
  201. Esc, DISKIT will go on searching for the next occurence of the 
  202. string rather than returning to the main menu.
  203.  
  204.      If the replace option is chosen, then the following screen 
  205. will appear as soon as an occurence of the search string is 
  206. found:
  207.  
  208.  
  209. ------------------------------------------------------------------
  210.  
  211.  
  212.      Searching for "DISKIT" in diskit.man ....
  213.  
  214.  
  215.  
  216.      Here it is at byte 646 in diskit.man:  DISKIT
  217.  
  218.      Shall I replace it? (Y or N):
  219.  
  220.  If you want to replace them all without being asked, type an 'A' for All.
  221.  To return to the main menu, press Esc.
  222.  
  223.  
  224.  
  225. ------------------------------------------------------------------
  226.  
  227.      DISKIT will display this screen every time it finds an 
  228. occurence unless you type an "A", in which case the program will 
  229. go on searching and replacing to the end of file without asking 
  230. for any more confirmation.
  231.  
  232.  
  233. Program Development
  234.  
  235.      Programmers can use DISKIT to look at the effects of their 
  236. program on the disk, to make sure input and output data are being 
  237. read and printed in the right place and in the right format.  
  238. Program developers who want to convert files from one program's 
  239. format to another, or to patch in to commercial applications--
  240. templates for 1-2-3 or dBASE III, for example--can use DISKIT to 
  241. analyze the programs' data structure. 
  242.  
  243.      For example, suppose you wanted to translate a file you'd 
  244. created with WordStar into straight ASCII.  A dump of the file
  245. would produce something like this:
  246.  
  247.  
  248. ------------------------------------------------------------------
  249.  
  250.       0: 20202020204449534B49D4206C6574F320796FF5206C6F6FEB2061F420776861
  251.       0:           D I S K I T   l e t s   y o u   l o o k   a t   w h a
  252.      32: 7427F3206FEE20796F75F2206469736BAC20616EE4206D616BE5208D0A636861
  253.      32: t ' s   o n   y o u r   d i s k ,   a n @   m a k e   @ n c h a
  254.      64: 6E6765F32074EF20776861F420796FF52066696EE4207468657265AE2020596F
  255.      64: n g e s   t o   w h a t   y o u   f i n @   t h e r e .     Y o 
  256.      96: F5206361EE206C6F6FEB2061F4207468E520636F6E74656E74F3206FE6208D0A
  257.      96: u   c a n   l o o k   a t   t h e   c o n t e n t s   o f   @ n 
  258.     128: E120646973EB2066696CE5206FF220E120646973EB20736563746F72AC2069EE
  259.     128: a   d i s k   f i l e   o r   a   d i s k   s e c t o r ,   i n 
  260.     160: 206569746865F22041534349C920286C6574746572F320616EE4208D0A6E756D
  261.     160:   e i t h e r   A S C I I   ( l e t t e r s   a n d   @ n n u m 
  262.     192: 626572F320E1206E6F726D61EC20706572736FEE206361EE2072656164A9206F
  263.     192: b e r s   a   n o r m a l   p e r s o n   c a n   r e a d )   o 
  264.     224: F22068657861646563696D61EC20286E756D626572F3208D0A70726F6772616D
  265.     224: r   h e x a d e c i m a l   ( n u m b e r s   @ n p r o g r a m 
  266.     256: 6D6572F320616EE420636F6D7075746572F3206361EE207265616429AC206FF2
  267.     256: m e r s   a n d   c o m p u t e r s   c a n   r e a d ) ,   o r 
  268.  
  269. ------------------------------------------------------------------
  270.  
  271.      We can see that the funny characters are the ones at the end
  272. of words.  For example, the first sentence should read, "DISKIT
  273. lets you look at what's on your disk, and make changes to what 
  274. you find there."  Notice that the words "and" and "find" both end 
  275. in an unprintable character, hexadecimal E4.  We know it's 
  276. supposed to be a 'd', hex value 64.  We subtract and find that 
  277. the character is 80 hex (128 decimal) more than the d.
  278.  
  279.      You could write a program that would look for characters 
  280. greater than 128 and subtract 128 from them, producing normal 
  281. ASCII files from WordStar's idiosyncratic ones. 
  282.  
  283. With Databases
  284.  
  285.      If you use a database management program, DISKIT can help 
  286. you to recover damaged data, perform ad hoc file maintenance, or 
  287. unscramble indexes.  For example, suppose you wanted to see how 
  288. DBASE II wrote its header records at the beginning of a file.  
  289.  
  290.  
  291.  
  292. ------------------------------------------------------------------
  293.  
  294.       0: 0253000A0954DA0046495253540000000000004319B9AA004C41535400000000
  295.       0: @ S _ n @ T Z _ F I R S T _ _ _ _ _ _ C @ 9 * _ L A S T _ _ _ _
  296.      32: 000000431ED2AA004144445231000000000000431EF0AA004144445232000000
  297.      32: _ _ _ C @ R * _ A D D R 1 _ _ _ _ _ _ C @ p * _ A D D R 2 _ _ _
  298.      64: 000000431E0EAB00434954590000000000000043142CAB005354415445000000
  299.      64: _ _ _ C @ @ + _ C I T Y _ _ _ _ _ _ _ C @ , + _ S T A T E _ _ _
  300.      96: 000000430240AB005A49500000000000000000430A42AB0050484F4E45000000
  301.      96: _ _ _ C @ @ + _ Z I P _ _ _ _ _ _ _ _ C n B + _ P H O N E _ _ _
  302.     128: 00000043144CAB004B45595300000000000000433260AB000D00000000000000
  303.     128: _ _ _ C @ L + _ K E Y S _ _ _ _ _ _ _ C 2 ` + _ \ _ _ _ _ _ _ _
  304.     160: 0000000000000000000000000000000000000000000000000000000000000000
  305.     160: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  306.  
  307.  
  308. ------------------------------------------------------------------
  309.  
  310.      Without going into great detail, we can see that the first
  311. few bytes are some kind of code, followed by the names of the
  312. fields in each record of the database.  If we look at a slightly
  313. different screen dump, we can immediately see how the header
  314. record is organized.
  315.  
  316.  
  317.  
  318. ------------------------------------------------------------------
  319.  
  320.       7: 0046495253540000000000004319B9AA
  321.       7: _ F I R S T _ _ _ _ _ _ C @ 9 * 
  322.      23: 004C41535400000000000000431ED2AA
  323.      23: _ L A S T _ _ _ _ _ _ _ C @ R * 
  324.      39: 004144445231000000000000431EF0AA
  325.      39: _ A D D R 1 _ _ _ _ _ _ C @ p * 
  326.      55: 004144445232000000000000431E0EAB
  327.      55: _ A D D R 2 _ _ _ _ _ _ C @ @ + 
  328.      71: 00434954590000000000000043142CAB
  329.      71: _ C I T Y _ _ _ _ _ _ _ C @ , + 
  330.      87: 005354415445000000000000430240AB
  331.      87: _ S T A T E _ _ _ _ _ _ C @ @ + 
  332.     103: 005A49500000000000000000430A42AB
  333.     103: _ Z I P _ _ _ _ _ _ _ _ C n B + 
  334.     119: 0050484F4E4500000000000043144CAB
  335.     119: _ P H O N E _ _ _ _ _ _ C @ L + 
  336.     135: 004B45595300000000000000433260AB
  337.     135: _ K E Y S _ _ _ _ _ _ _ C 2 ` + 
  338.     151: 000D0000000000000000000000000000
  339.     151: _ \ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
  340.     167: 00000000000000000000000000000000
  341.     167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
  342.  
  343.  
  344. ------------------------------------------------------------------
  345.  
  346.      Beginning at byte 7, with a line length of 16 bytes, we can
  347. see that the record length is 16 bytes, with the data type (in
  348. this case C or N) in the 13th byte.
  349.  
  350.  
  351. Other Things
  352.  
  353.      We think DISKIT is a valuable tool.  If you use it in a way
  354. that you think is novel and neat, let us know.  If we like your
  355. idea, we'll incorporate it in the documentation and send you $25. 
  356.  
  357.        
  358.  
  359.       
  360. 1-2-3 is a trademark of Lotus Development Corporation.
  361. DBASE II and DBASE III are trademarks of Ashton-Tate, Inc.
  362. WordStar is a trademark of MicroPro, Inc.
  363.